package com.exchange.util;

import cn.hutool.core.util.StrUtil;
import cn.hutool.http.HttpUtil;
import com.exchange.constant.BizConst;
import com.exchange.plugin.threadpool.ThreadPoolKit;
import com.jfinal.kit.PropKit;

/**
 * 短信服务工具类
 *
 * @author zy
 * @version 1.0
 * @create 2019-05-16 10:26 AM
 **/
public class SMSUtils {

    private static final String SIGN = "sign";    
    private static final String param = "code";

    /**
     * 发送验证码
     * @param type
     * @param values
     * # 注册 验证 模板
register-content = 【sign】感谢您的注册。验证码：code，5分钟内有效。请勿向您以外的任何人提供该验证码。
# 忘记密码 验证 模板
cipher-content = 【sign】您正在修改登陆密码。验证码：code，5分钟内有效。请勿向您以外的任何人提供该验证码。
# 修改资金密码 验证 模板
paycipher-content = 【sign】您正在修改资金密码。验证码：code，5分钟内有效。请勿向您以外的任何人提供该验证码。
# 绑定邮箱或电话 验证 模板
binding-content = 【sign】您正在进行绑定操作。验证码：code，5分钟内有效。请勿向您以外的任何人提供该验证码。
     */
    public static boolean sendMessage(String type, String mobile ,String value) {
        // 短信模板
        String content = StrUtil.EMPTY;

        switch (type) {
        	// 注册 验证 模板
            case BizConst.SMS_TYPE_REGISTER :
                content = PropKit.get("register-content");
                break;
            // 忘记密码 验证 模板
            case BizConst.SMS_TYPE_CIPHER :
                content = PropKit.get("cipher-content");
                break;
            // 修改资金密码 验证 模板
            case BizConst.SMS_TYPE_PAY_CIPHER :
                content = PropKit.get("paycipher-content");
                break;
            // 绑定邮箱或电话 验证 模板
            case BizConst.SMS_TYPE_BINGDING :
                content = PropKit.get("binding-content");
                break;
            default:
                break;
        }
        if(StrUtil.isBlank(content)) {
        	return false;
        }
        content = StrUtil.replace(content, SIGN, PropKit.get("smssign"), Boolean.TRUE);
        content = StrUtil.replace(content, param, value, Boolean.TRUE);
        
        final String c = content;
        ThreadPoolKit.submit(new Runnable() {
			public void run() {
				HttpUtil.post(
		    		PropKit.get("smsdomain"),
		    		"Uid="+PropKit.get("smsappid")+"&Key="+PropKit.get("smsappkey")+"&smsMob="+mobile+"&smsText="+c
		        );
			}
        });
        
        return true;
    }

}
